package com.openlogic.logic.service.logic;

import javax.validation.constraints.NotNull;

import com.openlogic.api.logic.entity.RuleModelDeploy;
import com.openlogic.common.logic.decision.table.model.DecisionTableResultVo;

/**
 * @ClassName: RuleDecisionTableService
 * @Description: 决策表Service接口层
 * @author weiyongpeng
 * @date 2024年7月14日 上午10:15:24
 */
public interface RuleDecisionTableService {

	/**
	 * 描述：根据决策id查询决策表信息
	 * @Title: findRuleDeployById
	 * @param ruleModelDeploy
	 * @return
	 * @author weiyongpeng
	 * @date 2024年9月27日 上午10:51:40
	 */
	public RuleModelDeploy findRuleDeployById(RuleModelDeploy ruleModelDeploy);

	/**
	 * 描述：保存决策表数据集
	 * @Title: save
	 * @param ruleModelDeploy
	 * @return
	 * @author weiyongpeng
	 * @date 2024年7月15日 下午7:22:05
	 */
	public int save(RuleModelDeploy ruleModelDeploy);

	/**
	 * 描述：修改决策表
	 * @Title: updateRuleModel
	 * @param ruleModelDeploy
	 * @return
	 * @author weiyongpeng
	 * @date 2024年7月15日 下午7:20:09
	 */
	public int updateRuleModel(RuleModelDeploy ruleModelDeploy);

	/**
	 * 描述：修改决策表状态 启用/停用
	 * @Title: updateStatus
	 * @param ruleModelDeploy
	 * @return
	 * @author weiyongpeng
	 * @date 2024年7月16日 上午10:33:50
	 */
	public boolean updateStatus(RuleModelDeploy ruleModelDeploy);

	/**
	 * 描述：删除决策表
	 * @Title: delete
	 * @param ruleModelKey
	 * @return
	 * @author weiyongpeng
	 * @date 2024年7月16日 上午11:30:05
	 */
	public boolean delete(String ruleModelKey);

	/**
	 * 描述：决策表debug测试
	 * @Title: debug
	 * @param dataInfo
	 * @param decisionTable
	 * @throws Exception
	 * @return
	 * @author weiyongpeng
	 * @date 2024年9月27日 上午11:05:04
	 */
	public DecisionTableResultVo debug(String dataInfo, String decisionTable) throws Exception;

	/**
	 * 描述：决策表执行
	 * @Title: execuateRule
	 * @param datas
	 * @param id
	 * @param operateNo
	 * @throws Exception
	 * @return
	 * @author weiyongpeng
	 * @date 2024年10月25日 下午2:29:28
	 */
	public DecisionTableResultVo execuateRule(String datas, @NotNull String id, String operateNo) throws Exception;

}
